<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example: 4+1 Views of Software Architecture</title>
<meta name="uma.type" content="Example">
<meta name="uma.name" content="four_plus_one_view_of_arch">
<meta name="uma.presentationName" content="4+1 Views of Software Architecture">
<meta name="element_type" content="example">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_4bC4cNs_EdyEW4klSH3vRA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Example: 4+1 Views of Software Architecture</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/example.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This example describes a possible set of views for describing a software architecture.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_views_viewpoints_7A6CD31.html" guid="_kgtcoNc8Edyd7OybSySFxg">Architectural Views and Viewpoints</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Main Description</th><td class="sectionTableCell"><p>
    You may want to consider the following views (not all views are relevant to all systems or all the stakeholders). This
    set of views is known as the 4+1 Views of Software Architecture [<a class="elementLinkWithUserText" href="./../../../core.default.nav_view.base/guidances/supportingmaterials/references_C6FF2A8D.html" guid="__nHToFndEd2EdJKkAyeBng">KRU95</a>].
</p>
<p>
    <img height="254" alt="4+1 Views of Software Architecture" src="./../../../core.tech.common.extend_supp/guidances/examples/./resources/4plus1_2.jpg" width="405" />
</p>
<ul>
    <li>
        <p>
            <strong>Use-case view</strong>: Describes functionality of the system, its external interfaces, and its
            principal users. This view is mandatory when using the 4+1 Views, because all elements of the architecture
            should be derived from requirements.
        </p>
    </li>
    <li>
        <p>
            <strong>Logical view</strong>: Describes how the system is structured in terms of units of implementation. The
            elements are packages, classes, and interfaces. The relationship between elements shows dependencies, interface
            realizations, part-whole relationships, and so forth. Note: This view is mandatory when using the 4+1 Views of
            Software Architecture.
        </p>
    </li>
    <li>
        <p>
            <strong>Implementation view</strong>: Describes how development artifacts are organized in the file system. The
            elements are files and directories (any configuration items). This includes development artifacts and
            deployment artifacts. This view is optional when using the 4+1 Views.
        </p>
    </li>
    <li>
        <p>
            <strong>Process view</strong>: Describes how the run-time system is structured as a set of elements that have
            run-time behavior and interactions. Run-time structure often bears little resemblance to the code structure. It
            consists of rapidly changing networks of communication objects. The elements are components that have run-time
            presence (processes, threads, Enterprise JavaBeans&trade; (EJB&trade;), servlets, DLLs, and so on), data stores, and
            complex connectors, such as queues. Interaction between elements varies, based on technology. This view is
            useful for thinking about run-time system quality attributes, such as performance and reliability. This view is
            optional when using the 4+1 Views.
        </p>
    </li>
    <li>
        <p>
            <strong>Deployment view</strong>: Describe how the system is mapped to the hardware. This view is optional when
            using the 4+1 Views.
        </p>
    </li>
</ul>
<p>
    In addition, you may wish to represent the following,
</p>
<ul>
    <li>
        <p>
            <strong>Data view</strong>: A specialization of the logical view. Use this view if persistence is a significant
            aspect of the system, and the translation from the design model to the data model is not done automatically by
            the persistence mechanism.
        </p>
    </li>
</ul></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
